# coding=utf-8
from sqlalchemy.orm import Session
from 学生管理系统.Mondel.Students_model import Students
from 学生管理系统.Query.Students import Students1



# 查询所有学生
def get_query(db: Session):
    return db.query(Students).all()


# 查询学生编号，返回指定学生结果集
def get_one_query(db: Session, student_id: int):
    return db.query(Students).filter(Students.id == student_id).first()

# 查询学生姓名，返回学生姓名的结果集
def get_name(db: Session, student_name: str):
   return db.query(Students).filter(Students.name.like(f"%{student_name}%")).first()
    # query = Students1(student_name=student_name)
    # if query:
    #     return Students1
    # return {'message':'该学生不存在'}

# 查询班级名称信息，返回班级名称结果集
def get_class_name(db: Session, student_id: int, student_name: str, calssname: str):
    return db.query(Students).filter(Students.name.like(f"%{student_name}%"),Students.id==student_id,Students.class_name==calssname).first()


# 添加学生，返回添加后的结果
def get_add(db: Session, student: Students1):
    add_stu = Students(**student.dict())
    db.add(add_stu)
    db.commit()
    db.refresh(add_stu)  # 刷新对象，获取数据库生成的属性
    return add_stu


# 修改学生，返回修改后的结果
def get_update(db: Session, student_id: int,student: Students1):
    # # 打印 student 的类型和值，确认是否为 Pydantic 对象
    # print("student 类型：", type(student))  # 正确应为 <class '学生管理系统.Query.Students.Students1'>
    # print("student 值：", student)  # 正确应为 Pydantic 对象，包含 id、name 等字段
    emp_01 = Students(**student.dict())

    db.query(Students).filter(Students.id== student_id).update(student.dict())
    db.commit()
    # database.refresh(emp_01)
    return emp_01



# 删除学生，返回删除后的结果
def get_delete(db: Session, student_id: int):
    del_stu = db.query(Students).filter(Students.id == student_id).first()
    db.delete(del_stu)
    db.commit()
    return  {"message": f"学生ID {student_id} 已删除", "deleted_id": student_id}
